#include <bits/stdc++.h>
using namespace std;

// 匈牙利算法
// 使用链式前向星建图
// 时间复杂度: O(VE)

int n;

struct Edge
{
    int nxt;
    int to;
} es[40005];

int head[205];
int tot;

int match[205];
int vis[205];

void add(int u, int v)
{
    tot++;
    es[tot].to = v;
    es[tot].nxt = head[u];
    head[u] = tot;
}

// 求节点 u 的增广路径
bool dfs(int u, int id)
{
    if (vis[u] == id)
        return false;

    vis[u] = id;

    for (int ne = head[u]; ne; ne = es[ne].nxt)
    {
        auto [nxt, to] = es[ne];
        if (match[to] == 0 || dfs(match[to], id))
        {
            match[to] = u;
            return true;
        }
    }
    return false;
}

void solve()
{
    int cnt = 0;
    for (int i = 1; i <= n; i++)
    {
        if (dfs(i, i))
            cnt++;
    }
}